package com.cleaningcloud.cld.mapper;

import java.util.List;

import com.cleaningcloud.cld.api.domain.CldProjectAccount;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;

/**
 * 项目账号信息Mapper接口
 * 
 * @author cleaningcloud
 * @date 2024-10-15
 */
public interface CldProjectAccountMapper 
{
    /**
     * 查询项目账号信息
     * 
     * @param projectAccountId 项目账号信息主键
     * @return 项目账号信息
     */
    CldProjectAccount selectCldProjectAccountByProjectAccountId(Long projectAccountId);

    /**
     * 查询项目账号信息列表
     * 
     * @param cldProjectAccount 项目账号信息
     * @return 项目账号信息集合
     */
    List<CldProjectAccount> selectCldProjectAccountList(CldProjectAccount cldProjectAccount);

    /**
     * 根据项目ID查询项目账号信息列表
     *
     * @param projectId 项目ID
     * @return 项目账号信息集合
     */
    List<CldProjectAccount> selectCldProjectAccountListByProjectId(Long projectId);

    /**
     * 新增项目账号信息
     * 
     * @param cldProjectAccount 项目账号信息
     * @return 结果
     */
    int insertCldProjectAccount(CldProjectAccount cldProjectAccount);

    /**
     * 修改项目账号信息
     * 
     * @param cldProjectAccount 项目账号信息
     * @return 结果
     */
    int updateCldProjectAccount(CldProjectAccount cldProjectAccount);

    /**
     * 删除项目账号信息
     * 
     * @param projectAccountId 项目账号信息主键
     * @return 结果
     */
    int deleteCldProjectAccountByProjectAccountId(Long projectAccountId);

    /**
     * 批量删除项目账号信息
     * 
     * @param projectAccountIds 需要删除的数据主键集合
     * @return 结果
     */
    int deleteCldProjectAccountByProjectAccountIds(Long[] projectAccountIds);



    /**
     * 根据手机号查询
     * @param accountPhone
     * @return
     */
    CldProjectAccount selectAccountByAccountPhone(String accountPhone);
    /**
     * 校验手机号码是否唯一
     *
     * @param phonenumber 手机号码
     * @return 结果
     */
    CldProjectAccount checkPhoneUnique(String phonenumber);

    @Update("update cld_project_account set flag = 1 where project_id = #{projectId}")
    void batchDeleteByProjectId(@Param("projectId") Long projectId);
}
